home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 30 / PC Gamer IT CD 30 2-2.iso / drivers / videodrv / s6326 / DRIVER / WINNT35 / OEMSETUP.INF next >
INI File  |  1996-02-14  |  28KB  |  722 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "SiS 640x480x4x60"        = SiSV,   4, 640,  480, 60, 0
  44.     "SiS 800x600x4x56"        = SiSV,   4, 800,  600, 56, 0
  45.     "SiS 800x600x4x60"        = SiSV,   4, 800,  600, 60, 0
  46.     "SiS 800x600x4x72"        = SiSV,   4, 800,  600, 72, 0
  47.     "SiS 800x600x4x75"        = SiSV,   4, 800,  600, 75, 0
  48.     "SiS 800x600x4x85"        = SiSV,   4, 800,  600, 85, 0
  49.     "SiS 1024x768x4x60"       = SiSV,   4, 1024, 768, 60, 0
  50.     "SiS 1024x768x4x70"       = SiSV,   4, 1024, 768, 70, 0
  51.     "SiS 1024x768x4x75"       = SiSV,   4, 1024, 768, 75, 0
  52.     "SiS 1024x768x4x87I"      = SiSV,   4, 1024, 768, 87, 1
  53.     "SiS 1024x768x4x85"       = SiSV,   4, 1024, 768, 85, 0
  54.  
  55.     "SiS 640x480x8x60"        = SiSV,   8, 640,  480, 60, 0
  56.     "SiS 640x480x8x72"        = SiSV,   8, 640,  480, 72, 0
  57.     "SiS 640x480x8x75"        = SiSV,   8, 640,  480, 75, 0
  58.     "SiS 640x480x8x85"        = SiSV,   8, 640,  480, 85, 0
  59.     "SiS 800x600x8x56"        = SiSV,   8, 800,  600, 56, 0
  60.     "SiS 800x600x8x60"        = SiSV,   8, 800,  600, 60, 0
  61.     "SiS 800x600x8x72"        = SiSV,   8, 800,  600, 72, 0
  62.     "SiS 800x600x8x75"        = SiSV,   8, 800,  600, 75, 0
  63.     "SiS 800x600x8x85"        = SiSV,   8, 800,  600, 85, 0
  64.     "SiS 1024x768x8x60"       = SiSV,   8, 1024, 768, 60, 0
  65.     "SiS 1024x768x8x70"       = SiSV,   8, 1024, 768, 70, 0
  66.     "SiS 1024x768x8x75"       = SiSV,   8, 1024, 768, 75, 0
  67.     "SiS 1024x768x8x87I"      = SiSV,   8, 1024, 768, 87, 1
  68.     "SiS 1024x768x8x85"       = SiSV,   8, 1024, 768, 85, 0
  69.     "SiS 1280x1024x8x87I"     = SiSV,   8, 1280,1024, 87, 1
  70.     "SiS 1280x1024x8x60"      = SiSV,   8, 1280,1024, 60, 0
  71.     "SiS 1280x1024x8x75"      = SiSV,   8, 1280,1024, 75, 0
  72.  
  73.     "SiS 640x480x15x60"       = SiSV,  15, 640,  480, 60, 0
  74.     "SiS 640x480x15x72"       = SiSV,  15, 640,  480, 72, 0
  75.     "SiS 640x480x15x75"       = SiSV,  15, 640,  480, 75, 0
  76.     "SiS 640x480x15x85"       = SiSV,  15, 640,  480, 85, 0
  77.     "SiS 800x600x15x56"       = SiSV,  15, 800,  600, 56, 0
  78.     "SiS 800x600x15x60"       = SiSV,  15, 800,  600, 60, 0
  79.     "SiS 800x600x15x72"       = SiSV,  15, 800,  600, 72, 0
  80.     "SiS 800x600x15x75"       = SiSV,  15, 800,  600, 75, 0
  81.     "SiS 800x600x15x85"       = SiSV,  15, 800,  600, 85, 0
  82.     "SiS 1024x768x15x60"      = SiSV,  15, 1024, 768, 60, 0
  83.     "SiS 1024x768x15x70"      = SiSV,  15, 1024, 768, 70, 0
  84.     "SiS 1024x768x15x75"      = SiSV,  15, 1024, 768, 75, 0
  85.     "SiS 1024x768x15x87I"     = SiSV,  15, 1024, 768, 87, 1
  86.     "SiS 1024x768x15x85"      = SiSV,  15, 1024, 768, 85, 0
  87.  
  88.     "SiS 640x480x16x60"       = SiSV,  16, 640,  480, 60, 0
  89.     "SiS 640x480x16x72"       = SiSV,  16, 640,  480, 72, 0
  90.     "SiS 640x480x16x75"       = SiSV,  16, 640,  480, 75, 0
  91.     "SiS 640x480x16x85"       = SiSV,  16, 640,  480, 85, 0
  92.     "SiS 800x600x16x56"       = SiSV,  16, 800,  600, 56, 0
  93.     "SiS 800x600x16x60"       = SiSV,  16, 800,  600, 60, 0
  94.     "SiS 800x600x16x72"       = SiSV,  16, 800,  600, 72, 0
  95.     "SiS 800x600x16x75"       = SiSV,  16, 800,  600, 75, 0
  96.     "SiS 800x600x16x85"       = SiSV,  16, 800,  600, 85, 0
  97.     "SiS 1024x768x16x60"      = SiSV,  16, 1024, 768, 60, 0
  98.     "SiS 1024x768x16x70"      = SiSV,  16, 1024, 768, 70, 0
  99.     "SiS 1024x768x16x75"      = SiSV,  16, 1024, 768, 75, 0
  100.     "SiS 1024x768x16x87I"     = SiSV,  16, 1024, 768, 87, 1
  101.     "SiS 1024x768x16x85"      = SiSV,  16, 1024, 768, 85, 0
  102.  
  103.     "SiS 640x480x24x60"       = SiSV,  24, 640,  480, 60, 0
  104.     "SiS 640x480x24x72"       = SiSV,  24, 640,  480, 72, 0
  105.     "SiS 640x480x24x75"       = SiSV,  24, 640,  480, 75, 0
  106.     "SiS 640x480x24x85"       = SiSV,  24, 640,  480, 85, 0
  107.     "SiS 800x600x24x56"       = SiSV,  24, 800,  600, 56, 0
  108.     "SiS 800x600x24x60"       = SiSV,  24, 800,  600, 60, 0
  109.     "SiS 800x600x24x72"       = SiSV,  24, 800,  600, 72, 0
  110.     "SiS 800x600x24x75"       = SiSV,  24, 800,  600, 75, 0
  111.     "SiS 800x600x24x85"       = SiSV,  24, 800,  600, 85, 0
  112.  
  113.  
  114. ;
  115. ; This maps detected options into the options we support
  116. ;
  117. ; Format: DetectedOption = MappedOption
  118. ;
  119.  
  120. [MapOfOptions]
  121.     "VGA"                       = "VGA"
  122.     "COMPAQ AVGA"               = "VGA"
  123.     "COMPAQ AGB"                = "VGA"
  124.     "8514 MONITOR UNKNOWN"      = "VGA"
  125.     "8514 VGA MONITOR"          = "VGA"
  126.     "8514 8503 MONO"            = "VGA"
  127.     "8514 8514 GAD"             = "VGA"
  128.     "GENOA VGA"                 = "VGA"
  129.     "VIDEO7 VGA DRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  130.     "VIDEO7 VGA VRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  131.     "TRIDENT VGA"               = "VGA"
  132.     "TRIDENT VGA 9100"          = "VGA"
  133.     "PARADISE VGA"              = "VGA"
  134.     "PARADISE VGA PROM"         = "VGA"
  135.     "PARADISE VGA CHIP 1F"      = "VGA"
  136.     "ATI VGA"                   = "VGA"
  137.     "ATI VGA WONDDER3"          = "VGA"
  138.     "TSENGLAB VGA ET3000"       = "VGA"
  139.     "TSENGLAB VGA ET4000"       = "TSENGLAB VGA ET4000 640x480x4x60"
  140.     "CIRRUS VGA"                = "VGA"
  141.     "CIRRUS VGA 610-620 REVC"   = "VGA"
  142.     "XGA"                       = "XGA 640x480x8"
  143.     "DELL DGX"                  = "DELL DGX 640x480x8"
  144.     "S3 VGA"                    = "S3 VGA 640x480x8"
  145.     "SiS VGA"                   = "SiS VGA 640x480x8"
  146.     "MEDIA VISION VGA"          = "MEDIA VISION VGA 640x480x8"
  147.     "PRODESIGNER II"            = "TSENGLAB VGA ET4000 640x480x4x60"
  148.  
  149.  
  150. ;
  151. ; Order of the information:
  152. ;
  153. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  154. ;
  155.  
  156. [MiniportDrivers]
  157.     SiSV  = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11, {SiSV,SiSV256}, 1 , %SystemRoot%\System32\IoLogMsg.dll , 7
  158.  
  159.  
  160.  
  161. ;-----------------------------------------------------------------------
  162. ; OPTION TEXT SECTION
  163. ; -------------------
  164. ; These are text strings used to identify the option to the user.  There
  165. ; are separate sections for each language supported.  The format of the
  166. ; section name is "OptionsText" concatenated with the Language represented
  167. ; by the section.
  168. ;
  169. ;-----------------------------------------------------------------------
  170.  
  171. [OptionsTextENG]
  172.     "SiS 640x480x4x60"        = "SiS 640x480, 16 colors, 60Hz"
  173.     "SiS 800x600x4x56"        = "SiS 800x600, 16 colors, 56Hz"
  174.     "SiS 800x600x4x60"        = "SiS 800x600, 16 colors, 60Hz"
  175.     "SiS 800x600x4x72"        = "SiS 800x600, 16 colors, 72Hz"
  176.     "SiS 800x600x4x75"        = "SiS 800x600, 16 colors, 75Hz"
  177.     "SiS 800x600x4x85"        = "SiS 800x600, 16 colors, 85Hz"
  178.     "SiS 1024x768x4x60"       = "SiS 1024x768, 16 colors, 60Hz"
  179.     "SiS 1024x768x4x70"       = "SiS 1024x768, 16 colors, 70Hz"
  180.     "SiS 1024x768x4x75"       = "SiS 1024x768, 16 colors, 75Hz"
  181.     "SiS 1024x768x4x87I"      = "SiS 1024x768, 16 colors, 87Hz Interlaced"
  182.     "SiS 1024x768x4x85"       = "SiS 1024x768, 16 colors, 85Hz"
  183.  
  184.     "SiS 640x480x8x60"        = "SiS 640x480, 256 colors, 60Hz"
  185.     "SiS 640x480x8x72"        = "SiS 640x480, 256 colors, 72Hz"
  186.     "SiS 640x480x8x75"        = "SiS 640x480, 256 colors, 75Hz"
  187.     "SiS 640x480x8x85"        = "SiS 640x480, 256 colors, 85Hz"
  188.     "SiS 800x600x8x56"        = "SiS 800x600, 256 colors, 56Hz"
  189.     "SiS 800x600x8x60"        = "SiS 800x600, 256 colors, 60Hz"
  190.     "SiS 800x600x8x72"        = "SiS 800x600, 256 colors, 72Hz"
  191.     "SiS 800x600x8x75"        = "SiS 800x600, 256 colors, 75Hz"
  192.     "SiS 800x600x8x85"        = "SiS 800x600, 256 colors, 85Hz"
  193.     "SiS 1024x768x8x60"       = "SiS 1024x768, 256 colors, 60Hz"
  194.     "SiS 1024x768x8x70"       = "SiS 1024x768, 256 colors, 70Hz"
  195.     "SiS 1024x768x8x75"       = "SiS 1024x768, 256 colors, 75Hz"
  196.     "SiS 1024x768x8x87I"      = "SiS 1024x768, 256 colors, 87Hz Interlaced"
  197.     "SiS 1024x768x8x85"       = "SiS 1024x768, 256 colors, 85Hz"
  198.     "SiS 1280x1024x8x87I"     = "SiS 1280x1024, 256 colors, 87Hz Interlaced"
  199.     "SiS 1280x1024x8x60"      = "SiS 1280x1024, 256 colors, 60Hz"
  200.     "SiS 1280x1024x8x75"      = "SiS 1280x1024, 256 colors, 75Hz"
  201.  
  202.     "SiS 640x480x15x60"       = "SiS 640x480, 32K colors, 60Hz"
  203.     "SiS 640x480x15x72"       = "SiS 640x480, 32K colors, 72Hz"
  204.     "SiS 640x480x15x75"       = "SiS 640x480, 32K colors, 75Hz"
  205.     "SiS 640x480x15x85"       = "SiS 640x480, 32K colors, 85Hz"
  206.     "SiS 800x600x15x56"       = "SiS 800x600, 32K colors, 56Hz"
  207.     "SiS 800x600x15x60"       = "SiS 800x600, 32K colors, 60Hz"
  208.     "SiS 800x600x15x72"       = "SiS 800x600, 32K colors, 72Hz"
  209.     "SiS 800x600x15x75"       = "SiS 800x600, 32K colors, 75Hz"
  210.     "SiS 800x600x15x85"       = "SiS 800x600, 32K colors, 85Hz"
  211.     "SiS 1024x768x15x60"      = "SiS 1024x768, 32K colors, 60Hz"
  212.     "SiS 1024x768x15x70"      = "SiS 1024x768, 32K colors, 70Hz"
  213.     "SiS 1024x768x15x75"      = "SiS 1024x768, 32K colors, 75Hz"
  214.     "SiS 1024x768x15x87I"     = "SiS 1024x768, 32K colors, 87Hz Interlaced"
  215.     "SiS 1024x768x15x85"      = "SiS 1024x768, 32K colors, 85Hz"
  216.  
  217.     "SiS 640x480x16x60"       = "SiS 640x480, 64K colors, 60Hz"
  218.     "SiS 640x480x16x72"       = "SiS 640x480, 64K colors, 72Hz"
  219.     "SiS 640x480x16x75"       = "SiS 640x480, 64K colors, 75Hz"
  220.     "SiS 640x480x16x85"       = "SiS 640x480, 64K colors, 85Hz"
  221.     "SiS 800x600x16x56"       = "SiS 800x600, 64K colors, 56Hz"
  222.     "SiS 800x600x16x60"       = "SiS 800x600, 64K colors, 60Hz"
  223.     "SiS 800x600x16x72"       = "SiS 800x600, 64K colors, 72Hz"
  224.     "SiS 800x600x16x75"       = "SiS 800x600, 64K colors, 75Hz"
  225.     "SiS 800x600x16x85"       = "SiS 800x600, 64K colors, 85Hz"
  226.     "SiS 1024x768x16x60"      = "SiS 1024x768, 64K colors, 60Hz"
  227.     "SiS 1024x768x16x70"      = "SiS 1024x768, 64K colors, 70Hz"
  228.     "SiS 1024x768x16x75"      = "SiS 1024x768, 64K colors, 75Hz"
  229.     "SiS 1024x768x16x87I"     = "SiS 1024x768, 64K colors, 87Hz Interlaced"
  230.     "SiS 1024x768x16x85"      = "SiS 1024x768, 64K colors, 85Hz"
  231.  
  232.     "SiS 640x480x24x60"       = "SiS 640x480, 16M colors, 60Hz"
  233.     "SiS 640x480x24x72"       = "SiS 640x480, 16M colors, 72Hz"
  234.     "SiS 640x480x24x75"       = "SiS 640x480, 16M colors, 75Hz"
  235.     "SiS 640x480x24x85"       = "SiS 640x480, 16M colors, 85Hz"
  236.     "SiS 800x600x24x56"       = "SiS 800x600, 16M colors, 56Hz"
  237.     "SiS 800x600x24x60"       = "SiS 800x600, 16M colors, 60Hz"
  238.     "SiS 800x600x24x72"       = "SiS 800x600, 16M colors, 72Hz"
  239.     "SiS 800x600x24x75"       = "SiS 800x600, 16M colors, 75Hz"
  240.     "SiS 800x600x24x85"       = "SiS 800x600, 16M colors, 85Hz"
  241.  
  242.  
  243. ;---------------------------------------------------------------------------
  244. ; 1. Identify
  245. ;
  246. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  247. ;                as we are choosing currently.
  248. ;
  249. ; INPUT:         None
  250. ;
  251. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  252. ;                $($R1): Option Type (COMPUTER ...)
  253. ;                $($R2): Diskette description
  254. ;---------------------------------------------------------------------------
  255.  
  256. [Identify]
  257.     ;
  258.     ;
  259.     Debug-Output "Enter Setup."
  260.     read-syms Identification
  261.  
  262.     set Status     = STATUS_SUCCESSFUL
  263.     set Identifier = $(OptionType)
  264.     set Media      = #("Source Media Descriptions", 1, 1)
  265.  
  266.     Return $(Status) $(Identifier) $(Media)
  267.  
  268.  
  269.  
  270. ;------------------------------------------------------------------------
  271. ; 2. ReturnOptions:
  272. ;
  273. ; DESCRIPTION:   To return the option list supported by this INF and the
  274. ;                localised text list representing the options.
  275. ;
  276. ;
  277. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  278. ;
  279. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  280. ;                                STATUS_NOLANGUAGE
  281. ;                                STATUS_FAILED
  282. ;
  283. ;                $($R1): Option List
  284. ;                $($R2): Option Text List
  285. ;------------------------------------------------------------------------
  286.  
  287. [ReturnOptions]
  288.     ;
  289.     ;
  290.     set Status        = STATUS_FAILED
  291.     set OptionList     = {}
  292.     set OptionTextList = {}
  293.  
  294.     ;
  295.     ; Check if the language requested is supported
  296.     ;
  297.     set LanguageList = ^(LanguagesSupported, 1)
  298.     Ifcontains(i) $($0) in $(LanguageList)
  299.         goto returnoptions
  300.     else
  301.         set Status = STATUS_NOLANGUAGE
  302.         goto finish_ReturnOptions
  303.     endif
  304.  
  305.     ;
  306.     ; form a list of all the options and another of the text representing
  307.     ;
  308.  
  309. returnoptions = +
  310.     set OptionList     = ^(Options, 0)
  311.     set OptionTextList = ^(OptionsText$($0), 1)
  312.     set Status         = STATUS_SUCCESSFUL
  313.  
  314. finish_ReturnOptions = +
  315.     Return $(Status) $(OptionList) $(OptionTextList)
  316.  
  317.  
  318.  
  319. ;---------------------------------------------------------------------------
  320. ; MapToSupportedOption
  321. ;
  322. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  323. ;                option which represents it.
  324. ;
  325. ; INPUT:         $($0): Option
  326. ;
  327. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  328. ;                $($R1): Mapped Option
  329. ;
  330. ;---------------------------------------------------------------------------
  331.  
  332. [MapToSupportedOption]
  333.     ;
  334.     set Status = STATUS_FAILED
  335.     set MappedOption = $($0)
  336.  
  337.     ;
  338.     ; If the option is one we can support using one of our standard options
  339.     ; then map it to the standard option else map it to the default option
  340.     ; which is VGA.
  341.     ;
  342.  
  343.     set OptionList = ^(MapOfOptions, 0)
  344.     ifcontains $($0) in $(OptionList)
  345.         Debug-Output "We are setting the option list here."
  346.         set MappedOption = #(MapOfOptions, $($0), 1)
  347.     else
  348.         set MappedOption = "VGA"
  349.     endif
  350.  
  351.     set Status = STATUS_SUCCESSFUL
  352.     Return $(Status) $(MappedOption)
  353.  
  354.  
  355.  
  356. [ServicesEntry]
  357.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  358.  
  359.  
  360. ;
  361. ; InstallOption:
  362. ;
  363. ; FUNCTION:  To copy files representing Options
  364. ;            To configure the installed option
  365. ;            To update the registry for the installed option
  366. ;
  367. ; INPUT:     $($0):  Language to use
  368. ;            $($1):  OptionID to install
  369. ;            $($2):  SourceDirectory
  370. ;            $($3):  AddCopy  (YES | NO)
  371. ;            $($4):  DoCopy   (YES | NO)
  372. ;            $($5):  DoConfig (YES | NO)
  373. ;
  374. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  375. ;                            STATUS_NOLANGUAGE |
  376. ;                            STATUS_USERCANCEL |
  377. ;                            STATUS_FAILED
  378. ;
  379.  
  380. [InstallOption]
  381.  
  382.     Debug-Output "We are entering Install Option."
  383.  
  384.     ;
  385.     ; Set default values for
  386.     ;
  387.     set Status       = STATUS_FAILED
  388.     set DrivesToFree = {}
  389.  
  390.     ;
  391.     ; extract parameters
  392.     ;
  393.     set Option   = $($1)
  394.     set SrcDir   = $($2)
  395.     set AddCopy  = $($3)
  396.     set DoCopy   = $($4)
  397.     set DoConfig = $($5)
  398.  
  399.     ;
  400.     ; Check if the language requested is supported
  401.     ;
  402.     set LanguageList = ^(LanguagesSupported, 1)
  403.     Ifcontains(i) $($0) in $(LanguageList)
  404.     else
  405.         set Status = STATUS_NOLANGUAGE
  406.         goto finish_InstallOption
  407.     endif
  408.     read-syms Strings$($0)
  409.  
  410.     ;
  411.     ; check to see if Option is supported.
  412.     ;
  413.  
  414.     set OptionList = ^(Options, 0)
  415.     ifcontains $(Option) in $(OptionList)
  416.     else
  417.         goto finish_InstallOption
  418.     endif
  419.     set OptionList = ""
  420.  
  421.     ;
  422.     ; Option has been defined already
  423.     ;
  424.     set MiniportDriver    = #(Options, $(Option), 1)
  425.     set BitsPerPel        = #(Options, $(Option), 2)
  426.     set XResolution       = #(Options, $(Option), 3)
  427.     set YResolution       = #(Options, $(Option), 4)
  428.     set VRefresh          = #(Options, $(Option), 5)
  429.     set Interlaced        = #(Options, $(Option), 6)
  430.  
  431.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  432.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  433.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  434.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  435.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  436.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  437.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  438.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  439.  
  440.     read-syms ServicesEntry
  441.     detect    ServicesEntry
  442.  
  443. installtheoption = +
  444.  
  445.     ;
  446.     ; Code to add files to copy list
  447.     ;
  448.  
  449.     ifstr(i) $(AddCopy) == "YES"
  450.         set DoActualCopy = NO
  451.         set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  452.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  453.         ifstr(i) $(STATUS) == NO
  454.             set DoActualCopy = YES
  455.             goto addfiles
  456.         endif
  457.         ForListDo $(InstalledDisplays)
  458.             set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  459.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  460.             ifstr(i) $(STATUS) == NO
  461.                 set DoActualCopy = YES
  462.             endif
  463.         EndForListDo
  464.  
  465. addfiles = +
  466.         ifstr(i) $(DoActualCopy) == NO
  467.             shell "subroutn.inf" DriversExist $($0) $(String1)
  468.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  469.                 Debug-Output "VIDEO.INF: shelling DriversExist failed"
  470.                 goto finish_InstallOption
  471.             endif
  472.  
  473.             ifstr(i) $($R0) == STATUS_CURRENT
  474.             else-ifstr(i) $($R0) == STATUS_NEW
  475.                 set DoActualCopy = YES
  476.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  477.                 Debug-Output "VIDEO.INF: User cancelled video installation"
  478.                 goto finish_InstallOption
  479.             else
  480.                 Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  481.                 goto finish_InstallOption
  482.             endif
  483.         endif
  484.  
  485.         ifstr(i) $(DoActualCopy) == YES
  486.  
  487.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  488.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  489.                 Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  490.                 goto finish_InstallOption
  491.             endif
  492.  
  493.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  494.                 set SrcDir = $($R1)
  495.                 ifstr(i) $($R2) != ""
  496.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  497.                 endif
  498.             else
  499.                 Debug-Output "VIDEO.INF: User cancelled asking source."
  500.                 goto finish_InstallOption
  501.             endif
  502.  
  503.             install Install-AddCopyOption
  504.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  505.                 Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  506.                 goto finish_InstallOption
  507.             endif
  508.         else
  509.             set DoCopy = NO
  510.         endif
  511.  
  512.     endif
  513.  
  514.     ifstr(i) $(DoCopy) == "YES"
  515.         read-syms ProgressCopy$($0)
  516.         install Install-DoCopyOption
  517.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  518.             Debug-Output "Copying files failed"
  519.             goto finish_InstallOption
  520.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  521.             set Status = STATUS_USERCANCEL
  522.             goto finish_InstallOption
  523.         endif
  524.     endif
  525.  
  526.     ifstr(i) $(DoConfig) == "YES"
  527.  
  528.         ;
  529.         ; first run a privilege check on modifying the setup node
  530.         ;
  531.  
  532.         shell "registry.inf" CheckSetupModify
  533.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  534.             goto finish_InstallOption
  535.         endif
  536.  
  537.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  538.             goto finish_InstallOption
  539.         endif
  540.  
  541.         ;
  542.         ; first make a new video entry, the entry is created automatically
  543.         ; enabled
  544.         ;
  545.  
  546.         set ServiceNode   = $(MiniportDriver)
  547.         set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  548.  
  549.         set ServicesValues   = { +
  550.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  551.                 {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  552.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  553.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  554.                 {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  555.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  556.                 }
  557.  
  558.         set ParametersValues = { +
  559.                 {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, +
  560.                 {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)     }, +
  561.                 {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)        }, +
  562.                 {DefaultSettings.VRefresh,    0, $(!REG_VT_DWORD),    $(VRefresh)          }, +
  563.                 {DefaultSettings.Interlaced,  0, $(!REG_VT_DWORD),    $(Interlaced)        }, +
  564.                 {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)       }, +
  565.                 {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)       }  +
  566.                 }
  567.  
  568.         ifstr(i) $(VRefresh) != ""
  569.             set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  570.             set ParametersValue = >($(ParametersValue), $(VRefreshValue))
  571.         endif
  572.  
  573.         ifstr(i) $(Interlaced) != ""
  574.             set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  575.             set ParametersValue = >($(ParametersValue), $(InterlacedValue))
  576.         endif
  577.  
  578.         set DeviceValues     = {}
  579.         set EventLogValues   = { +
  580.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  581.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  582.                 }
  583.  
  584.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  585.                                                 $(ServicesValues)   +
  586.                                                 $(ParametersValues) +
  587.                                                 $(DeviceValues)     +
  588.                                                 $(EventLogValues)   +
  589.                                                 Device0
  590.  
  591.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  592.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  593.             goto finish_InstallOption
  594.         endif
  595.  
  596.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  597.             Debug-Output "MakeServicesEntry failed for video"
  598.             goto finish_InstallOption
  599.         endif
  600.  
  601.         ;
  602.         ;
  603.         ; then disable the previous video entry
  604.         ;
  605.  
  606.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  607.             ifstr(i) $(CurrentEntry) != VGA
  608.                 ifstr(i) $(CurrentEntry) != ""
  609.                     shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  610.  
  611.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  612.                         Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  613.                         goto errorconfig
  614.                     endif
  615.  
  616.                     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  617.                         Debug-Output "DisableServices entry failed"
  618.                     endif
  619.                 endif
  620.             endif
  621.         endif
  622.  
  623.         goto configdone
  624.  
  625. errorconfig = +
  626.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  627.             shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  628.             ifstr(i) $(CurrentEntry) != ""
  629.                 shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  630.             endif
  631.         endif
  632.         goto finish_InstallOption
  633.  
  634. configdone = +
  635.  
  636.     endif
  637.  
  638.     set Status = STATUS_SUCCESSFUL
  639.  
  640. finish_InstallOption = +
  641.     ForListDo $(DrivesToFree)
  642.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  643.     EndForListDo
  644.  
  645.     Return $(Status)
  646.  
  647.  
  648. [Install-AddCopyOption]
  649.  
  650.     set STF_VITAL = ""
  651.     ;
  652.     ; Add the files to the copy list
  653.     ;
  654.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  655.                                   $(MiniportDriver)              +
  656.                                   $(SrcDir)                      +
  657.                                   $(!STF_WINDOWSSYSPATH)\drivers
  658.  
  659.     ForListDo $(InstalledDisplays)
  660.         AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  661.                                       $($)                       +
  662.                                       $(SrcDir)                  +
  663.                                       $(!STF_WINDOWSSYSPATH)
  664.  
  665.     EndForListDo
  666.  
  667.     exit
  668.  
  669.  
  670. [Install-DoCopyOption]
  671.  
  672.     ;
  673.     ; Copy files in the copy list
  674.     ;
  675.     CopyFilesInCopyList
  676.     exit
  677.  
  678. ;**************************************************************************
  679. ; PROGRESS GUAGE VARIABLES
  680. ;**************************************************************************
  681.  
  682. [ProgressCopyENG]
  683.     ProCaption   = "Windows NT Setup"
  684.     ProCancel    = "Cancel"
  685.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  686.                    "to cancel copying files?"
  687.     ProCancelCap = "Setup Message"
  688.     ProText1     = "Copying:"
  689.     ProText2     = "To:"
  690.  
  691. [StringsENG]
  692.     String1 = "Display"
  693.     String2 = "Please enter the full path to the OEM Display "+
  694.               "driver files.  Then choose Continue."
  695.  
  696. ;-----------------------------------------------------------------------
  697. ; SOURCE MEDIA DESCRIPTIONS
  698. ; -------------------------
  699. ; The OEM should list all the diskette labels here.  The source media
  700. ; description is used during copy to prompt the user for a diskette
  701. ; if the source is diskettes.
  702. ;
  703. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  704. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  705. ;     ...
  706. ;-----------------------------------------------------------------------
  707.  
  708. ;--------------------------------------------------------------------
  709. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  710. ; SPREAD SHEETS
  711. ;--------------------------------------------------------------------
  712.  
  713. [Source Media Descriptions]
  714.     1  = "SiS SETUP (VIDEO)", TAGFILE = SiStag
  715.  
  716. [Files-DisplayDLLs]
  717. SiSV = 1,SiSV.dll , SIZE=999
  718. SiSV256 = 1,SiSV256.dll , SIZE=999
  719.  
  720. [Files-DisplayMiniportDrivers]
  721. SiSV = 1,SiSV.sys , SIZE=999
  722.